8+2[1] 10
8-2[1] 6
8*2[1] 16
8/2[1] 4
Exo1 : Premiers pas dans R
Jean-Paul N’GBESSO & Claude GRASLAND
2025-05-27
Nous allons commencer par passer quelques commandes arithmétiques simples. Il suffit de les taper dans la console de R pour qu’elles s’executent automatiquement.
Les objets élémentaires de R apparaissent dans la fenêtre environnement sous la rubrique Values une fois qu’ils sont créés. Ils sont stockés dans la mémoire de votre ordinateur mais effacé si celui-ci est éteint
Un élément est unique et constitue la brique de base de tous les objets suivants. On peut aussi l’interpréter comme un vecteur de longueur 1 ou une matrice de dimension 1x1.
Les éléments se combinent différemment selon leur type. Par exemple, des éléments de type caractère (character) peuvent être assemblés avec l’instruction paste() ou découpez avec l’instruction substr() :
[1] "Bonjour tout le monde !"
[1] "Bon"
Quant aux éléments logiques (logical) nous verrons qu’ils peuvent se combiner avec des opérateurs comme & qui signifie ET ou bien | qui signifie OU.
Un vecteur est un ensemble d’éléments de même type que l’on a concaténés à l’aide de l’instruction c(). On peut ensuite les aditionner, les multiplier ou les combiner avec des éléments.
On remarque dans l’exemple ci-dessus que R n’a pas de problème pour combiner des vecteurs de tailles différentes.
Une matrice est un ensemble de vecteurs de même longueur et de même type. On peut donc construire une matrice en concaténant des vecteurs verticalement avec cbind()ou horizontalement avec rbind().
# deux vecteurs
x1 <- c(1,2,4,8,16)
x2 <- c(5,10,15,20,25)
# matrice en colonnes
m1 <- cbind(x1,x2)
m1 x1 x2
[1,] 1 5
[2,] 2 10
[3,] 4 15
[4,] 8 20
[5,] 16 25
[,1] [,2] [,3] [,4] [,5]
x1 1 2 4 8 16
x2 5 10 15 20 25
[1] 1 2 4 8 16 5 10 15 20 25
[1] FALSE
Si on assemble deux vecteurs à l’aide de la commande c()on obtient un vecteur et pas une matrice.
R utilise des types plus complexes d’objets qui lui sont propres et qui sont en général des listes ou des listes de listes.
Les vecteurs regroupent des éléments de même type tandis que les listes regroupent des éléments ou des objets de type quelconque. Le type liste est donc beaucoup plus général, mais aussi plus difficile d’emploi.
On peut comparer une liste à un panier de course dans lequel on mélange des choux, des carottes, des navets, une boîte de douze oeufs, un paquet de croquettes pour chiens, etc…
# Format vecteur
prenom <- c("Ali", "Amine",
"Anne","Marc","Zayneb")
sexe <- c("H","H","F","H","F")
age <- c(21,22,24,18,25)
# Format liste
Ali <- list("H",21)
Amine <- list("F",22)
Anne <- list("F",28)
Marc <- list ("H",18)
Zayneb <- list("F",25)
# Ne pas confondre !
Ali <- c("H",21)
Ali[1] "H" "21"
[[1]]
[1] "H"
[[2]]
[1] 21
Chaque valeur, vecteur ou matrice appartient à un seul type de données. Il est important de ne pas les confondre, sous peine d’obtenir des résultats … douteux. On se limitera ici aux principaux types, d’autres étant vus ultérieurement dans l’année :
La commande str() permet de vérifier le type d’un vecteur (ou d’une matrice) et d’en afficher la dimension.
chr [1:5] "Ali" "Amine" "Anne" "Marc" "Zayneb"
logi [1:5] TRUE FALSE TRUE FALSE FALSE
# Format Factor
sexe <- c(1,1,2,1,2)
sexe<-as.factor(sexe)
levels(sexe) <-c("Homme","Femme")
str(sexe) Factor w/ 2 levels "Homme","Femme": 1 1 2 1 2
num [1:5] 21 22 24 18 25
# Format date
nais<-c("1999-10-28","1998-10-13",
"1996-10-15","2002-02-07","1995-06-18")
nais<-as.Date(nais)
str(nais) Date[1:5], format: "1999-10-28" "1998-10-13" "1996-10-15" "2002-02-07" "1995-06-18"
R est un langage de programmation multifonction qui évolue depuis maintenant plus de 30 ans et auquel s’ajoutent continuellement de nouveaux packages. A la différence de SPSS, il n’est pas spécialisé uniquement en statistique, même si le coeur du logiciel est bien centré sur la statistique. Pour progresser rapidement en R il est indispensable :
variables et de tableaux.R-Base.documentation et les forums de discussion en cas de difficulté.Exercice 1
Construire le vecteur x suivant :
[1] "Paris" "Londres" "Tokyo" "New York"
Construire le vecteur y suivant :
[1] "France" "Royaume-Uni" "Japon" "USA"
Construire le vecteur z suivant :
[1] 10.2 14.6 42.8 23.9
Construire la matrice m1
[,1] [,2] [,3] [,4]
x "Paris" "Londres" "Tokyo" "New York"
y "France" "Royaume-Uni" "Japon" "USA"
Construire la matrice m2
x y
[1,] "Paris" "France"
[2,] "Londres" "Royaume-Uni"
[3,] "Tokyo" "Japon"
[4,] "New York" "USA"
Construire le data.frame df
y x z
1 France Paris 10.2
2 Royaume-Uni Londres 14.6
3 Japon Tokyo 42.8
4 USA New York 23.9
Exercice 2 (d’après J.Barnier)
On a demandé à 4 ménages le revenu des deux conjoints, et le nombre de personnes du ménage :
Calculer le revenu total de chaque ménage, puis diviser par le nombre de personnes pour obtenir le revenu par personne de chaque ménage.